waypoint * route_find_waypt_by_name(route_head *rh, const char *name);
void track_add_head(route_head *rte);
void track_del_head(route_head *rte);
+void route_disp(const route_head *rte, waypt_cb);
void route_disp_all(route_hdr, route_trl, waypt_cb);
void track_disp_all(route_hdr, route_trl, waypt_cb);
void route_free (route_head *);
void route_flush( queue *);
void route_flush_all(void);
+route_head * route_find_route_by_name(const char *name);
+route_head * route_find_track_by_name(const char *name);
unsigned int route_waypt_count(void);
unsigned int route_count(void);
unsigned int track_count(void);
trk_head_ct--;
}
+static
+route_head *
+common_route_by_name(queue *routes, const char *name)
+{
+ queue *elem, *tmp;
+ route_head *rte;
+
+ QUEUE_FOR_EACH(routes, elem, tmp) {
+ rte = (route_head *) elem;
+ if (0 == strcmp(rte->rte_name, name)) {
+ return rte;
+ }
+ }
+
+ return NULL;
+}
+
+route_head *
+route_find_route_by_name(const char *name)
+{
+ return common_route_by_name(&my_route_head, name);
+}
+
+route_head *
+route_find_track_by_name(const char *name)
+{
+ return common_route_by_name(&my_track_head, name);
+}
+
void
route_add_wpt(route_head *rte, waypoint *wpt)
{
{
route_flush(&my_route_head);
route_flush(&my_track_head);
+ rte_head_ct = 0;
+ trk_head_ct = 0;
+ rte_waypts = 0;
}
void